struct Point {
    var x: Double
    var y: Double
}
// 结构体是值类型
var p1 = Point(x: 1.0, y: 2.0)
var p2 = p1  // 结构体是值类型，p2 是 p1 的副本
p2.x = 3.0  // 修改 p2 不影响 p1
print("p1: (\(p1.x), \(p1.y))")  // 输出: p1: (1.0, 2.0)
print("p2: (\(p2.x), \(p2.y))")  // 输出: p2: (3.0, 2.0)

// 类是引用类型
class ClassPoint {
    var x: Double
    init(x: Double) { self.x = x }
}
var cp1 = ClassPoint(x: 1.0)
var cp2 = cp1  // cp2 和 cp1 引用同一实例
cp2.x = 3.0
print(cp1.x)  // 输出 3.0
